#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <time.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

int main(int argc, char const *argv[])
{
  if (argc != 2)
  {
    fprintf(stderr, "程序错误：运行程序时请带入参数(./27-fprintf_sprintf filename)");
    exit(-1);
  }
  FILE *fp = fopen(argv[1], "w+");
  if (fp == NULL)
  {
    perror("fopen");
    exit(-1);
  }
  int data = 0;
  char buf[100] = {0};
  while (1)
  {
    data++;
    //把指定格式的字符串写入到文件内
    fprintf(fp, "data=%d\n", data);
    fflush(fp);

    //等价于 printf 函数的功能
    fprintf(stdout, "data=%d\n", data);

    //把指定格式的字符串写入到数组内
    sprintf(buf, "data=%d\n", data);

    //等价于 printf 函数功能
    printf("%s", buf);

    sleep(1);
  }

  return 0;
}
